package com.nd.qa.shareplate.service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.nd.qa.shareplate.model.SharePage;

public interface PageService {

	/**
	 * 添加page
	 * @param page
	 * @return
	 */
	public void insertPageInfo(SharePage page) throws Exception;;
	/**
	 * 修改page
	 * @param page
	 * @return
	 */
	public Map<String, Object> updatePageInfo(SharePage page) throws Exception;;
	/**
	 * 修改page信息
	 * @param page
	 * @return
	 */
	public Integer updatePage(SharePage page) throws Exception;;
	/**
	 * 删除page
	 */
	public void deletePageInfo() throws Exception;
	/**
	 * 查询模块下所有的page
	 * @return
	 */
	public List<HashMap<String, Object>> queryPageList(Integer moduleId) throws Exception;
	/**
	 * 查询页面信息
	 * @param page
	 * @return
	 */
	public HashMap<String, Object> queryPageInfo(SharePage page) throws Exception;
	/**
	 * 查询所有的子页面
	 * @param page
	 * @return
	 */
	public List<HashMap<String, Object>> queryChildPageList(SharePage page) throws Exception;
	/**
	 * 删除所有的子页面
	 * @param page
	 * @return
	 */
	public HashMap<String, Object> deleteChildPages(SharePage page) throws Exception;
	/**
	 * 修改页面名称
	 * @param page
	 * @return
	 */
	public HashMap<String, Object> modifyPage(SharePage page) throws Exception;
	/**
	 * 查询页面深度
	 */
	public Integer queryDepthForId(int pageId) throws Exception;
	/**
	 * 查询模块最大深度值
	 */
	public Integer queryMaxDepth(int moduleId) throws Exception;
	/**
	 * 查询深度一样的页面
	 */
	public List<SharePage> queryPagesForDepth(int moduleId, int depth) throws Exception;
	/**
	 * 查询页面信息
	 */
	public SharePage queryPageById(int pageId) throws Exception;
	/**
	 * 查询模板页面信息
	 * @param page
	 * @return
	 * @throws Exception
	 */
	public SharePage queryTemplatePage(SharePage page) throws Exception;
	/**
	 * 查询模板页面下的子页面
	 * @param page
	 * @return
	 * @throws Exception
	 */
	public List<SharePage> queryChildPages(SharePage page) throws Exception;
	/**
	 * 查询新增页面序列id
	 * @param seqName
	 * @return
	 * @throws Exception
	 */
	public Integer queryPageSeqByName(String seqName) throws Exception;
	/**
	 * 修改页面信息
	 * @param page
	 * @throws Exception
	 */
	public void updateTargetPageInfo(SharePage page) throws Exception;
	/**
	 * 根据元素Id,查询页面信息
	 * @param elementId
	 * @throws Exception
	 */
	public SharePage queryPageByElementId(Integer elementId) throws Exception;
	/**
	 * 处理页面拖拽事务
	 * @param param
	 * @throws Exception
	 */
	public void handleDragPage(HashMap<String, Object> param) throws Exception;
	/**
	 * 查询子页面信息
	 * @param page
	 * @throws Exception
	 */
	public List<SharePage> queryChildPageForId(SharePage page) throws Exception;
	/**
	 * 修改子页面层级关系
	 * @param page
	 * @throws Exception
	 */
	public void updateChildPage(SharePage page) throws Exception;
	/**
	 * 查询页面信息
	 * @param page
	 * @throws Exception
	 */
	public List<SharePage> queryPagesById(SharePage page) throws Exception;
}
